package com.suray.system.run.data.mysql.analyze;

import com.suray.commin.core.utils.SpringContextHolder;
import com.suray.system.run.data.mysql.device.entity.ErrorDesDB;
import com.suray.system.run.data.mysql.device.error.ErrorDesDBServiceImpl;
import com.suray.system.run.type.DeviceType;

import java.util.Date;
import java.util.List;

public class ErrorDescriptionStore {
    private ErrorDesDBServiceImpl errorDesDBService = SpringContextHolder.getBean(ErrorDesDBServiceImpl.class);

    /**
     * 设备序列号
     */
    private String series;

    /**
     * 异常数据表
     */
    private ErrorDesDB errorDesDB;

    /**
     * 设备类型
     */
    private DeviceType deviceType;

    public ErrorDescriptionStore(String series, DeviceType deviceType) {
        this.series = series;
        this.deviceType = deviceType;
    }

    /**
     * 查找当前异常数据
     */
    public ErrorDesDB findErrorDesData() {
        errorDesDB = errorDesDBService.findErrorDesDBBySeries(series);
        return errorDesDB;
    }

    /**
     * 创建异常数据
     * @return
     */
    public ErrorDesDB createErrorDesData() {
        errorDesDB = new ErrorDesDB();
        errorDesDB.setSeries(series);
        errorDesDB.setDeviceType(deviceType);
        errorDesDBService.save(errorDesDB);
        return errorDesDB;
    }

    /**
     * 更新异常数据
     * @return
     */
    public boolean updateErrorDesData() {
        return errorDesDBService.updateById(errorDesDB);
    }

    /**
     * 获取所有异常
     * @return
     * @param startTime
     * @param endTime
     */
    public List<ErrorDesDB> getErrorDesList(Date startTime, Date endTime) {
        return errorDesDBService.findAllDeviceErrorDes(series, startTime, endTime);
    }

    /**
     * 获取小车故障次数
     * @return
     */
    public int getErrorNum() {
        return errorDesDBService.count();
    }
}
